home *** CD-ROM | disk | FTP | other *** search
- ---------------------------------------------------------------------------
- - 'Fliegende Dialoge' in GFA-BASIC 3.x -
- - (c)1992-1994 Gregor Duchalski -
- - -
- - Version 4.x, History -
- ---------------------------------------------------------------------------
-
- Ver. Datum ('*' = Version wurde veröffentlicht)
-
- 4.0 * 01.03.93 -Erste öffentliche Version der neuen Routinen.
-
- 02.03.93 -EXIT-Buttons wurden in der Breite einen Pixel zu groß
- gezeichnet.
- -Bei Check-und Radiobuttons wird der Text jetzt nur noch
- ausgegeben, wenn es wirklich nötig ist. Das verhindert
- lästiges Flackern und Probleme mit dem Cursor in einem
- darunterbefindlichen Eingabefeld.
-
- * 06.03.93 -Die Fensterdialoge können unter MTOS nun nicht mehr bedient
- werden, wenn sie im Hintergrund liegen und mit der rechten
- Maustaste angeklickt werden. (Gefunden von Mike Steffl)
- -Circle-Buttons können nun auch per Tastatur mit SHIFT+
- ALTERNATE+Buchstabe bedient werden. (Abgeguckt von den
- Flydials)
-
- 07.03.93 -Ein disableter Exit-Button wurde in einer Pixelreihe falsch
- gezeichnet. (Gefunden von Michael Heng)
-
- 15.03.93 -'Pling' beim Anklicken eines Fensters im Hintergrund eines
- Fensterdialoges, sofern die jeweilige Aktion nicht ausführ-
- bar ist (z.B. Schließfeld).
-
- 19.03.93 -SHIFT+ALTERNATE+<Taste> zur Bedienung eines Circlebuttons
- funktionierte bei den Fensterdialogen nicht. (Gefunden von
- Michael Heng)
- -Zahlen ließen sich nicht als Shortcuts in Dialogen
- verwenden. (Michael Heng again :-)
- -Bei einem nicht-Fenster-Dialog werden jetzt keine Message-
- Ereignisse in 'rsc_do' mehr abgefragt bzw. durchgelassen.
- Dies konnte z.B. zu Redraw-Problemen in Zusammenhang mit der
- Dateiauswahlbox führen. (Gefunden von Arne Schween).
-
- 20.03.93 -Bei den Fensterdialogen gab es Situationen, in denen der
- Cursor verschwinden konnte. Das müßte jetzt behoben sein.
-
- * 22.03.93 -Ach Du Schande: Bei den Fensterdialogen wurde in 'rsc_draw'
- bei WIND_CREATE für die Höhe 'deshk&' verwendet, richtig
- ist natürlich 'deskh&'. Warum das nie Probleme gab ist mir
- schleierhaft...
-
- 4.5 * 09.06.93 -Assembler-INLINE überarbeitet, 3D-Routinen eingebaut!
- Sofern die entsprechenden Flags gesetzt sind, erscheinen die
- Dialoge unter MultiTOS (und nur dort) im 3D-Look. Näheres
- dazu siehe im geänderten GFA_FLY4.TXT, '3D-Darstellung'.
-
- -Die erweiterten Routinen enthalten jetzt fliegende ALERT-
- Boxen. Zu diesem Zweck mußte die Funktion 'rsc_laden' er-
- weitert werden, sie bekommt nun noch die Nummer des Alert-
- Dialoges übergeben. Näheres steht im aktualisierten
- 'GFA_FLYD.TXT'.
-
- -Die Routinen wurden unter dem Gesichtspunkt 'Verwendung in
- einem ACC' überarbeitet. Dazu gehört z.B., daß bei den
- Fensterdialogen in 'rsc_back' jetzt zusätzlich überprüft
- wird, ob das Fenster noch geöffnet ist und es nur dann
- geschlossen wird. Näheres steht im Abschnitt 'Verwendung
- in Accessories' im GFA_FLYD.TXT.
-
- -Es wird jetzt eine Liste der gleichzeitig (übereinander)
- geöffneten Dialoge mitgeführt. Damit dürften Verstümmelungen
- und Redraw-Probleme in diesen Fällen Vergangenheit sein.
-
- -Der rsc_bitblt%-Routine bekommt jetzt auch den Schreibmodus
- übergeben, damit ist sie endlich universell einsetzbar.
-
- -In Fensterdialogen waren Popups nicht über den Tastatur-
- Shortcut des voranstehenden Strings aufrufbar.
-
- -Zahlen wurden als Tasten-Shortcuts nicht erkannt. Übel,
- dabei hatte ich das irgendwann mal eingebaut...
-
- -Die Prozedur 'message_auswerten' bei den Fensterdialogen
- muß nun den gesamten AES-Message-Puffer übergeben bekommen.
-
- -'rsc_do' bekommt jetzt wie die Original-FORM_DO zusätzlich
- das Objekt übergeben, in dem der Textcursor zu Beginn
- stehen soll.
-
- -Die Userblks werden nicht mehr in einem Integer-Feld, son-
- dern in einem geMALLOCten Bereich abgelegt. In seltenen
- Fällen konnte es sonst zu Problemen kommen. Damit verbunden
- ist 'rsc_walk_tree' jetzt als Funktion definiert.
-
- -Der Assembler-INLINE enthält jetzt eine Routine, die einen
- Cookie sucht und im Erfolgsfalle dessen Wert zurückliefert.
- Näheres unter 'Goodies...' im GFA_FLYD.TXT.
-
- 18.06.93 -Die Hintergrundrestaurierung in 'rsc_back' etwas abgeändert,
- jetzt bleiben in keinem Fall unschöne Dialog-Reste zurück.
-
- 27.06.93 -Die Parameter-Reihenfolge bei 'rsc_popup' war bei den Fen-
- sterdialogen vertauscht. Viel nur auf, wenn man beide
- Versionen mischte.
-
- 01.07.93 -Und nur bei den Fensterdialogen wurde in 'rsc_popup'
- WIND_UPDATE() gesetzt. Prinzipiell OK, konnte allerdings
- ebenfalls beim Mischen problematisch werden.
-
- * 05.07.93 -Böse: Zweimal wurde auf die Variable 'rsc_userblk%()' zuge-
- griffen, die es aber gar nicht mehr gibt. Einen Fehler gab
- es zum Glück nur, wenn kein Dialogtitel existierte.
-
- -In einigen Programmteilen wurden Variablen nicht lokal de-
- finiert, obwohl sie verwendet wurden. Diese und auch die
- umgekehrten Fälle sollten jetzt behoben sein.
-
- 4.6 28.07.93 -Änderung im Aufruf von 'rsc_draw': 'window!' wird durch
- ein Bitflag ersetzt, mit dem mehr Optionen realisiert
- werden können. Bisher belegt:
- Bit 0 -> Fensterdialog
- Bit 1 -> Schließfeld
- Weitere Bits sind reserviert. Ihr müßt leider Eure Aufrufe
- entsprechend anpassen.
-
- -Objekte können jetzt auch über die Funktionstasten bedient
- werden. Zur Festlegung werde die Bits 12-15 von OB_FLAGS
- benutzt, näheres im GFA_FLYD.TXT. In diesem Zusammenhang
- gehört jetzt auch INTRFACE.RSC zum Lieferumfang. Es ent-
- hält den angepaßten EXTFLAGS-Dialogbaum.
-
- 02.08.93 -Rahmen wurden unter MultiTOS immer in der 3D-Farbe gezeich-
- net, unabhängig von der Einstellung der 3D-Flags.
-
- * 15.08.93 -Fehler in 'rsc_popup' behoben, der deselektierte Einträge
- u.U. unmotiviert wählbar machte.
-
- -Wird kein Popup-Eintrag ausgewählt (Klick daneben, <UNDO>),
- so wird 'rsc_do' auch nicht mehr verlassen.
-
- -'rsc_movedial' mußte leider um 2 weitere Parameter erwei-
- tert werden, um einen Bug in der SOLID-Routine sauber be-
- heben zu können.
-
- -Wenn eine Resource ALERT- oder FREE-Bäume enthielt, kam
- 'rsc_laden' nicht ohne Anpassung damit klar. Nun befinden
- sich entsprechende Zeilen als REMarks im Listing. Näheres
- steht im GFA_FLY4.TXT unter 'rsc_laden'.
-
- -Die 3D-Effekte werden nur noch bei einer 3D-Farbe<>0
- aktiviert. Z.B. unter ST-Mid sahen einige Objekte sonst
- sehr merkwürdig aus.
-
- 19.09.93 -Unkorrekte GEMSYS-Aufrufe von APPL_GETINFO und OBJC_SYSVAR
- korrigiert.
-
- 22.09.93 -Sogn. 'Geisterdials' implementiert: Wird die Flydial-Ecke
- mit gedrückter Zusatztaste (SHIFT, ALT, CONTROL) oder der
- rechten Maustaste angeklickt, wird der Dialog zunächst
- entfernt und nur ein Rahmen verschoben. Somit kann man
- besser sehen, was hinter dem Dialog ist.
-
- -'rsc_init', 'rsc_laden' und 'rsc_walktree' intern etwas
- umstrukturiert. Die wichtigsten Parameter werden jetzt
- alle in 'rsc_init' ermittelt, dadurch kann z.B. die
- Cookie-Routine auch vor dem Laden der eigentlichen
- Resource benutzt werden. 'rsc_walktree' erhält nun einen
- Parameter weniger übergeben.
-
- * 25.09.93 -Probleme mit MAG!X und den 3D-Objekten behoben.
-
- 02.10.93 -Der Versuch, ein anderes Fenster zu toppen obwohl ein Fen-
- sterdialog geöffnet ist, führt nun zum Toppen dieses Dialo-
- ges.
-
- 09.10.93 -Statt generellen Tests auf MultiTOS (alte Variable 'mtos!')
- wird jetzt gezielt die AES-Version (neue Variable
- 'rsc_aes&') oder die Multitasking-Fähigkeit (neue Variable
- 'rsc_mtsk!') zur Entscheidung herangezogen.
-
- -Vorhandensein der 3D-Objekte wird jetzt nicht mehr an der
- AES-Version >=3.34, sondern an >=3.40 festgemacht.
-
- 4.7ß 19.11.93 -Beim Aufruf eines Popups über die Tastatur ist jetzt immer
- ein Eintrag selektiert, auch wenn der Mauszeiger außerhalb
- des Menüs steht.
-
- 09.01.94 -In 'rsc_exit' wurde vergessen, auch 'rsc_userblk%' wieder
- mit MFREE() freizugeben. Das ist allerdings auch nur im
- Interpreter nötig.
-
- 15.01.94 -Der 'Ping' wird jetzt mit ~BIOS(3,2,7) erzeugt, da das um
- einiges kürzer als OUT 2,7 ist.
-
- -In den Fensterroutinen fehlten die Geisterdials.
-
- 18.01.94 -'rsc_popup' kann jetzt auch zum Aufrufen eines Popups _ohne_
- darunterliegendem Dialog benutzt werden. Dazu ist 'button&'
- auf 0 zu setzen. Bsp.: ~@rsc_popup(FALSE,0,0,pop_fkt|,1)
-
- 19.01.94 -'rsc_walk_tree' überarbeitet: a$ war zuviel, die Button-
- Behandlung, insbesondere die von Checkboxen, wurde leicht
- geändert.
-
- -Checkboxen können jetzt einen dritten Status neben "ange-
- kreuzt" / "nicht angekreuzt" haben: Wenn das Flag CHECKED
- gesetzt ist, aber nicht SELECTED, wird die Checkbox mit
- einem Punktmuster gefüllt ("Tristate-Button"). Zur Verwal-
- tung dient die Prozedur 'rsc_tristate' aus EXTENDED.LST.
- Das Objekt darf nicht SELECTABLE sein, aber TOUCHEXIT.
-
- 23.01.94 -Wird 'rsc_laden' als Anzahl der Objektbäume -1 übergeben,
- so werden die Daten automatisch ermittelt.
-
- -Der 3D-Effekt bei Buttons sah etwas merkwürdig aus. Ich
- weiß nicht mehr, bei welcher Version das verhunzt wurde,
- jetzt ist es jedenfalls wieder in Ordnung.
-
- -Bei normalen Dialogen wird jetzt ein führendes Space im
- Titel übersprungen. Vorteil: Der Titel eines Fensterdialoges
- kann links und rechts jeweils ein Leerzeichen haben, was
- einfach schöner aussieht.
-
- 06.02.94 -Neues Flag bei 'rsc_draw': Ist Bit 2 gesetzt, wird ein
- Fensterdialog sofort beim Aufruf gezeichnet, ansonsten wie
- gehabt erst bei 'rsc_do'.
-
- 4.7 * 12.02.94 -'rsc_exit' umgestellt, kleinere Bugs behoben.
-
- 4.8 22.02.94 -Leider kam um ich um die Einführung einer eigenen Cursor-
- Setz-Prozedur ('rsc_cursor()') nicht herum. Dafür sind
- jetzt einige Probleme mit dem Eingabezeiger (z.B. bei den
- Geisterdials) behoben. 'rsc_movedial' benutzt diese
- Prozedur.
-
- -Der Unterstrich bei Dialogtiteln wird jetzt einen Pixel
- tiefer gezeichnet.
-
- * 28.02.94 -'rsc_movedial': Das Setzen des Cursors wird unterlassen,
- wenn es kein editierbares Objekt gibt.
-
- 4.9 23.05.94 -Die Freigabe von 'rsc_userblk%' in 'rsc_exit' klappte
- nicht (Frank Rüger).
-
- -Bei allen OBJC_DRAWs wird jetzt 7 als max. Tiefe
- gesetzt.
-
- -Radiobuttons etwas verkleinert, einigen Leuten waren
- sie zu groß.
-
- -OBJC_CHANGE() in 'rsc_popup' korrigiert, setzte immer 1
- als OB_STATE und überschrieb damit alle anderen Bits
- (David Reitter).
-
- -Test auf APPL_GETINFO() überprüft zusätzliche das Vor-
- handensein der Pseudo-Applikation "?API" (Frank Rüger).
-
- 01.06.94 -'Dialog sofort zeichnen'-Modus bei 'rsc_draw' war nicht
- korrekt implementiert.
-
- * 02.06.94 -'-1' für die Anzahl der Bäume in 'rsc_laden' nicht
- mehr zulässig. Gab zuviele Probleme...
-
- ---------------------------------------------------------------------------
-